home *** CD-ROM | disk | FTP | other *** search
- Example code at the end.
-
-
- ---------------------------------ENGLISH------------------------------
-
- Offers already done objects for construction of professional
- quality user interfaces, using ARexx, images, sounds, musics,
- etc...
- The default visual aspect is the "3D look".
-
- Adjust itself with the user choices: font, colors, selection
- modes, display modes, user language, etc...
-
- Assures an identical aspect and the compatibility with the
- system versions 1.x, 2.x and 3.0.
-
- Only a small knowledge of the system is necessary to build
- sophisticated applications and user interfaces.
-
- Can be used with any compiler able to give the address of
- sub-programs, to allow UIK to call them (C, assembler,
- Pascal, etc...).
-
- Makes accessible easily object oriented programming with any
- of these compilers. This allows a programmation of the type
- "construction game", fast and motivating.
-
- Execution speed: UIK is developed in assembler and C.
-
- Event driven programming: UIK takes charge of the wait loop for
- events managing. Applications are always ready to answer to an
- event from the user or a program, and the programmer assigns
- functions to objects DYNAMICALY (while program execution) and
- relative to specific events.
-
- Transparent management of objects thanks to same basic functions,
- automatic inheritance as cascade between objects for some of
- their characteristics.
-
- An application under UIK takes in account 2 languages under
- 1.3 and 2.04, and as many as possible with system versions 2.1
- and 3.0, thanks to automatic use of "locale.library" and external
- catalogs.
-
- UIK is not a code generator (builder). It is the opposite and a
- lot more than that.
- We program as usual with our text editor, we call functions of
- "uik.library".
-
- It is the opposite because it brings to us what the generators
- do not: what is explained above and more.
-
- It is a lot more than a generator because the power of the
- object engine and all the things which it brings in automatic,
- save a lot of development time, so much that the saved time with
- a generator becomes negligible.
-
- For questions, bug reports, enhancements, see the author:
-
- Jean-Michel Forgeas
- 16170 Bordeville
- France
-
- uucp: {uunet}!cbmvax!cbmehq!cbmfra!swinjm!forgeas
- or: forgeas@swinjm.adsp.sub.org
-
- Sale :
-
- The package is made of a 88 pages plastic wrapped manual and two
- disks into sealed envelope. One disk is the UIK develpment kit
- and the other one contains the 2.0 system include files and the
- Commodore development kit, distributed under a Commodore license.
-
- Public price: $130 US
- Direct Sale: send your command + check to the order address above.
- Retailers: consult me.
-
-
- -------------------------------FRANCAIS---------------------------------
-
- Offre des objets tous faits pour la construction d'interfaces
- utilisateur de qualité professionnelle, utilisant ARexx, images,
- sons, musiques, etc...
- L'aspect visuel par défaut est le "look 3D".
-
- S'ajuste automatiquement sur les choix de l'utilisateur : police
- de caractères, couleurs, modes de sélection, modes d'écran, langue
- de l'utilisateur, etc...
-
- Assure un aspect identique ainsi que la compatibilité avec les
- versions 1.x, 2.x, 3.0 du système d'exploitation.
-
- Seule une connaissance très sommaire du système est requise pour
- pouvoir faire des applications et des interfaces utilisateur
- sophistiquées.
-
- Utilisable avec n'importe quel compilateur qui permet de donner
- l'adresse de sous-programmes afin que UIK puisse les appeler (C,
- assembleur, Pascal, etc...).
-
- Rend accessible facilement la programmation orientée objets avec
- n'importe lequel de ces compilateurs. Cela permet une programmation
- du type "jeu de construction" rapide et motivante.
-
- Rapidité d'exécution : UIK est développé en assembleur et en
- langage C.
-
- Programmation par évènements : UIK prend en charge la boucle
- d'attente et de gestion des évènements. Les applications sont toujours
- prêtes à répondre à un évènement utilisateur ou programme, et le
- programmeur assigne des fonctions aux objets DYNAMIQUEMENT (pendant
- l'exécution du programme) et relatives à des évènements spécifiques.
-
- Gestion transparente des objets grâce aux mêmes fonctions de
- base, héritage en cascade automatique entre objets pour certaines
- de leurs caractéristiques.
-
- Une application sous UIK prend en compte 2 langages sous 1.3 et
- 2.04, et autant de langages qu'il est possible avec les versions
- 2.1 et 3.0 du système, grâce à l'utilisation automatique de
- "locale.library" et de catalogues externes.
-
- UIK n'est pas un générateur de code, il est à la fois le contraire
- et bien plus que cela.
- On programme comme d'habitude avec son éditeur de texte, on appelle
- les fonctions de "uik.library".
-
- Il est le contraire car il apporte ce que les générateurs de code
- laissent de côté : ce qui est expliqué ci-dessus et bien plus.
-
- Il est bien plus qu'un générateur car la puissance du moteur objet
- et toutes les choses qu'il rend automatiques font gagner un temps
- énorme sur le développement, tellement que le temps économisé avec
- un générateur de code (ou builder) devient négligeable.
-
- Pour des questions, bug reports, idées, s'adresser à l'auteur :
-
- Jean-Michel Forgeas
- 16170 Bordeville
- France
-
- uucp: {uunet}!cbmvax!cbmehq!cbmfra!swinjm!forgeas
- ou: forgeas@swinjm.adsp.sub.org
-
- Vente :
-
- Le package comprend un manuel de 88 pages sous plastique et deux
- disquettes sous enveloppe scellée. Une disquette contenant le kit
- de développement UIK et l'autre les fichiers includes Système 2.0
- et le kit de développement Commodore, distribuée sous licence
- Commodore.
- Le prix public est de 550 Francs français TTC.
- Vente directe : adressez vos commande + chèque à l'adresse ci-dessus.
- Revendeurs : me consulter.
-
-
- ---------------------- Simple working example code ---------------------
-
- /****************************************************************
- *
- * File: ListProp
- * Project: UIK example code
- *
- * Created: 23-08-92 Jean-Michel Forgeas
- *
- ****************************************************************/
-
-
- /****** Includes ************************************************/
-
- #include <libraries/dos.h>
-
- #include "uiki:uikbase.h"
- #include "uiki:uikobj.h"
- #include "uiki:uikmacros.h"
- #include "uiki:uikglobal.h"
- #include "uiki:uik_protos.h"
- #include "uiki:uik_pragmas.h"
- #include "uiki:objlist.h"
- #include "uiki:objproplift.h"
- #include "uiki:objwindow.h"
-
- #define TEXT_WindowTitle 1
- #define TEXT_ScreenTitle 2
- #define TEXT_ListTitle 3
- #define TEXT_ListEntry 4
-
-
- /****** Statics ************************************************/
-
- static struct UIKBase *UIKBase;
- static struct UIKGlobal *UIK;
-
- static struct UIKObj *Up;
- static struct UIKObj *Down;
- static struct UIKObj *List;
-
- static UBYTE *LangEnglish[] =
- {
- "",
- "ListProp",
- "ListProp Copyright © 1992 Jean-Michel Forgeas",
- "The List",
- "Hello1\nHello2\nHello3\nHello4\nHello5\nHello6\nHello7\nHello8\nHello9\nHello10\nHello11\nHello12",
- 0
- };
-
- static UBYTE *LangOther[] =
- {
- "",
- "ListProp",
- "ListProp Copyright © 1992 Jean-Michel Forgeas",
- "La liste",
- "bonjour1\n"
- "bonjour2\n"
- "bonjour3\n"
- "bonjour4\n"
- "bonjour5",
- 0
- };
-
- static UWORD PatProp[] = { 0xAAAA, 0x5555 };
-
-
- /****************************************************************
- *
- * Code
- *
- ****************************************************************/
-
- static void Cleanup()
- {
- if (UIK) UIK_Remove( UIK );
- if (UIKBase) CloseLibrary( UIKBase );
- exit(0);
- }
-
- void main()
- {
- struct UIKObj *wo;
- struct UIKObj *oprop;
-
- if (! (UIKBase = (struct UIKBase *) OpenLibrary( UIKNAME, 0 ))) goto END_ERROR;
- if (! (UIK = (struct UIKGlobal *) UIK_AddObjectTags( "UIK", 0,
- UIKTAG_GEN_LangEnglish, (ULONG) LangEnglish,
- UIKTAG_GEN_LangOther, (ULONG) LangOther,
- UIKTAG_GEN_Catalog, (ULONG) "uik/test/ListProp.catalog",
- TAG_END ))) goto END_ERROR;
-
- if (! (wo = UIK_AddObjectTags( "UIKObj_Window", UIK, /* Window */
- UIKTAG_OBJ_LeftTop, W2L(180,30),
- UIKTAG_OBJ_WidthHeight, W2L(250,104),
- UIKTAG_OBJ_Title, TEXT_WindowTitle,
- UIKTAG_OBJ_AltTitle, TEXT_ScreenTitle,
- TAG_END ))) goto END_ERROR;
-
- if (! (List = UIK_AddObjectTags( "UIKObj_List", wo, /* List */
- UIKTAG_OBJ_LeftTop, W2L(10,15),
- UIKTAG_OBJ_WidthHeight, W2L(200,70),
- UIKTAG_OBJ_Title, TEXT_ListTitle,
- UIKTAG_OBJ_TitleFl_Above, TRUE,
- UIKTAG_OBJListFl_ClickSel,FALSE,
- UIKTAG_OBJListFl_SelDispl,FALSE,
- UIKTAG_OBJList_TextPtr, (ULONG) UIK_LangString( UIK, TEXT_ListEntry ),
- UIKTAG_OBJ_Sz_AttachedFl_Top, TRUE,
- UIKTAG_OBJ_Sz_AttachedFl_Left, TRUE,
- UIKTAG_OBJ_Sz_AttachedFl_Right, TRUE,
- UIKTAG_OBJ_Sz_AttachedFl_Bot, TRUE,
- TAG_END ))) goto END_ERROR;
-
- if (! (oprop = UIK_AddObjectTags( "UIKObj_PropLift", wo, /* Prop */
- UIKTAG_OBJ_LeftTop, W2L(215,15),
- UIKTAG_OBJ_WidthHeight, W2L(20,70),
- UIKTAG_OBJ_BoxFl_Over, FALSE,
- UIKTAG_OBJ_Sz_AttachedFl_Top, TRUE,
- UIKTAG_OBJ_Sz_AttachedFl_Right,TRUE,
- UIKTAG_OBJ_Sz_AttachedFl_Bot, TRUE,
- UIKTAG_OBJProp_Vertical, TRUE,
- UIKTAG_OBJ_Pattern, (ULONG)PatProp,
- UIKTAG_OBJ_PatternPower, 1,
- TAG_END ))) goto END_ERROR;
-
- if (! (Up = UIK_AddObjectTags( "UIKObj_Up", wo, /* Up */
- UIKTAG_OBJ_LeftTop, W2L(10,87),
- UIKTAG_OBJ_WidthHeight, W2L(100,12),
- UIKTAG_OBJ_Sz_AttachedFl_Bot, TRUE,
- TAG_END ))) goto END_ERROR;
- if (! (Down = UIK_AddObjectTags( "UIKObj_Down", wo, /* Down */
- UIKTAG_OBJ_LeftTop, W2L(110,87),
- UIKTAG_OBJ_WidthHeight, W2L(100,12),
- UIKTAG_OBJ_Sz_AttachedFl_Bot, TRUE,
- TAG_END ))) goto END_ERROR;
-
- /* Link the prop to the list */
- if (! UIK_Link( oprop, List, 0, MOUSEMOVE|GADGETDOWN, 0 )) goto END_ERROR;
-
- /* Link buttons Up and Down to the prop */
- if (! UIK_Link( Up, oprop, 0, GADGETDOWN|INTUITICKS|MOUSEMOVE, 0 )) goto END_ERROR;
- if (! UIK_Link( Down, oprop, 0, GADGETDOWN|INTUITICKS|MOUSEMOVE, 0 )) goto END_ERROR;
-
- /* Opens window and gadgets */
- if (! UIK_Start( UIK )) goto END_ERROR;
-
- /* Let UIK manage the events */
- UIK_Do( UIK, SIGBREAKF_CTRL_C );
-
- END_ERROR:
- Cleanup();
- }
-